package com.suxin.plugin.intergration;

import com.suxin.plugin.listener.PluginListener;

import java.util.List;

/**
 * @author Tang
 * @classname PluginListenerContext
 * @description [ 插件执行过程中的监听类 ]
 * @date 2022/6/26 18:18
 */
public interface PluginListenerContext {

    /**
     * addListener
     * @param pluginListener pluginListener 监听器
     */
    void addListener(PluginListener pluginListener);

    /**
     * addListener
     * @param pluginListener
     * @param <T>
     */
    <T extends PluginListener> void addListener(Class<T> pluginListener);

    /**
     * pluginListeners
     * @param pluginListeners pluginListeners 插件 bean 监听者集合
     */
    void addListener(List<PluginListener> pluginListeners);
}